スコープ
スコープとは?
変数、定数、引数がスクリプト内のどこの場所から定義されているか、どこで値を参照できるかを決めるもの。概念
グローバルスコープとローカルスコープ
全体を参照…グルーバルスコープ(赤枠)
定義された関数の中で参照…ローカルスコープ(黄枠)
グローバルスコープでの変数…グローバル変数(赤点線枠)
ローカルスコープ内での変数…ローカル変数(黄点線枠)
赤枠がグローバルスコープ
黄枠がローカルスコープ
constの宣言を外すと変数が上書きされてしまいます
エラーを防ぐためにconstもしくはletで宣言しておくクセをつけた方が良さそうですね!
ブロックスコープ
ブロックスコープ
ブロック({…})の範囲で変数が存在するスコープ
青枠→出力
赤枠→出力 黄枠→出力
白枠(ブロックスコープ)→赤枠、黄枠がブロック内で出力できる有効範囲です
ブロック外で宣言をした緑枠→エラーになります
ブロック内外で変数名が重なった場合はどうなるんだろう?
変数名が被ってもブロックで囲われているのでconsoleエラーになってないですね!
白枠内で赤枠を宣言してます
さらにその中の青枠でブロックスコープの宣言をしてもエラー起こってないですね!